package com.wang.proxydemo.cglibProxy;

import net.sf.cglib.proxy.Enhancer;

public class Test {
    public static void main(String[] args) {
        // 1. 创建目标对象
        Animal animal = new Animal();

        // 2. 创建 Enhancer (CGLIB的代理生成器)
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(Animal.class); // 设置父类 (目标类)
        enhancer.setCallback(new AnimalInterceptor()); // 设置增强处理器

        // 3. 生成代理对象 (是Animal的子类)
        Animal proxy = (Animal) enhancer.create();

        // 4. 调用代理对象的方法
        proxy.eat();
        System.out.println();
        proxy.sleep();
    }
}
